package view;
/**
 *
 * @author zhaoyingxi
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.ButtonGroup;
import javax.swing.JMenuBar;
import javax.swing.KeyStroke;
import javax.swing.ImageIcon;

import java.awt.event.KeyEvent;

import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JFrame;


/*@author zhaoyingxi jc11839209*/

/*
* This class exists solely to show you what menus look like.
* It has no menu-related event handling.
*/
public class Menus {
  JTextArea output;
  JScrollPane scrollPane;

  public JMenuBar createMenuBar() {
    JMenuBar menuBar;
    JMenu menu, submenu;
    JMenuItem menuItem;
    JRadioButtonMenuItem rbMenuItem;
    JCheckBoxMenuItem cbMenuItem;

    //�����˵���
    menuBar = new JMenuBar();

   //
   menu = new JMenu("A Menu");
   menu.setMnemonic(KeyEvent.VK_A);//�����ȼ�
   menu.getAccessibleContext().setAccessibleDescription("The only menu in this program that has menu items");
   menuBar.add(menu);

   //a group of JMenuItems
   menuItem = new JMenuItem("A text-only menu item", KeyEvent.VK_T);
   //menuItem.setMnemonic(KeyEvent.VK_T); //used constructor instead
   //����������ü��ټ�
   menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
   menuItem.getAccessibleContext().setAccessibleDescription("This doesn��t really do anything");
   menu.add(menuItem);

   ImageIcon icon = createImageIcon("images/middle.gif");
   menuItem = new JMenuItem("Both text and icon", icon);
   menuItem.setMnemonic(KeyEvent.VK_B);
   menu.add(menuItem);

    menuItem = new JMenuItem(icon);
    menuItem.setMnemonic(KeyEvent.VK_D);
    menu.add(menuItem);

   //a group of radio button menu items
   menu.addSeparator();
   ButtonGroup group = new ButtonGroup();

   rbMenuItem = new JRadioButtonMenuItem("A radio button menu item");
   rbMenuItem.setSelected(true);
   rbMenuItem.setMnemonic(KeyEvent.VK_R);
   group.add(rbMenuItem);
   menu.add(rbMenuItem);

   rbMenuItem = new JRadioButtonMenuItem("Another one");
   rbMenuItem.setMnemonic(KeyEvent.VK_O);
   group.add(rbMenuItem);
   menu.add(rbMenuItem);

   //a group of check box menu items
   menu.addSeparator();
   cbMenuItem = new JCheckBoxMenuItem("A check box menu item");
   cbMenuItem.setMnemonic(KeyEvent.VK_C);
   menu.add(cbMenuItem);

   cbMenuItem = new JCheckBoxMenuItem("Another one");
   cbMenuItem.setMnemonic(KeyEvent.VK_H);
   menu.add(cbMenuItem);

   //a submenu
   menu.addSeparator();
   submenu = new JMenu("A submenu");
   submenu.setMnemonic(KeyEvent.VK_S);

   menuItem = new JMenuItem("An item in the submenu");
   menuItem.setAccelerator(KeyStroke.getKeyStroke(
   KeyEvent.VK_2, ActionEvent.ALT_MASK));
   submenu.add(menuItem);

  menuItem = new JMenuItem("Another item");
  submenu.add(menuItem);
  menu.add(submenu);
  //Build second menu in the menu bar.
  menu = new JMenu("Another Menu");
  menu.setMnemonic(KeyEvent.VK_N);
  menu.getAccessibleContext().setAccessibleDescription("This menu does nothing");
  menuBar.add(menu);
  return menuBar;
  }
  public Container createContentPane() {
    //Create the content-pane-to-be.
    JPanel contentPane = new JPanel(new BorderLayout());
    contentPane.setOpaque(true);
    //Create a scrolled text area.
    output = new JTextArea(5, 30);
    output.setEditable(false);
    scrollPane = new JScrollPane(output);
    //Add the text area to the content pane.
    contentPane.add(scrollPane, BorderLayout.CENTER);
    return contentPane;
  }
 /** Returns an ImageIcon, or null if the path was invalid. */
  protected static ImageIcon createImageIcon(String path) {
      java.net.URL imgURL = Menus.class.getResource(path);
      if (imgURL != null) {
            return new ImageIcon(imgURL);
      } else {
            System.err.println("Couldn��t find file: " + path);
      return null;
      }
  }

public static void main(String[] args) {
   JFrame.setDefaultLookAndFeelDecorated(true);
   JFrame frame = new JFrame("MenuLookDemo");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Menus demo = new Menus();
    frame.setJMenuBar(demo.createMenuBar());
    frame.setContentPane(demo.createContentPane());
    frame.setSize(450, 260);
     frame.setVisible(true);
  }
}
